package com.ibangnuo.api.employee;

import com.ibangnuo.framework.domain.Employee;
import com.ibangnuo.framework.domain.request.alipay.PayRequest;
import com.ibangnuo.framework.domain.request.employee.EmployeeRequest;
import com.ibangnuo.framework.domain.request.employee.SalesmanQueryRequest;
import com.ibangnuo.framework.model.response.QueryResponseResult;
import com.ibangnuo.framework.model.response.ResponseResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;

import java.util.List;
import java.util.Map;

/**
 * @Author:ly
 * @Data:2019/12/27 10:24
 * @Verdion:1.0
 */
@Api(value="员工管理",description = "员工管理的增删改查")
public interface EmployeeControllerApi {

    @ApiOperation("员工查询")
    @ApiImplicitParams({
            @ApiImplicitParam(name="adminUsername",value = "真实姓名",required=true,paramType="body",dataType="String"),
            @ApiImplicitParam(name="adminName",value = "登录名",required=true,paramType="body",dataType="String"),
            @ApiImplicitParam(name="adminNumber",value = "id",required=true,paramType="body",dataType="Long"),
            @ApiImplicitParam(name="adminUuid",value = "编号",required=true,paramType="body",dataType="Long"),
            @ApiImplicitParam(name="adminEmail",value = "邮箱",required=true,paramType="body",dataType="String"),
            @ApiImplicitParam(name="adminPhone",value = "电话",required=true,paramType="body",dataType="Long"),
            @ApiImplicitParam(name="adminState",value = "状态",required=true,paramType="body",dataType="Integer"),
            @ApiImplicitParam(name="adminIdAgentId",value = "所属公司",required=true,paramType="body",dataType="Integer")
    })
    QueryResponseResult query( EmployeeRequest employeeRequest);


    @ApiOperation("员工删除")
    @ApiImplicitParams({@ApiImplicitParam(name="adminUuid",value = "员工id",required=true,paramType="path",dataType="int")})
    QueryResponseResult delAdmin(String adminUuid);


    @ApiOperation("员工添加")
    @ApiImplicitParams({
            @ApiImplicitParam(name="adminUsername",value = "真实姓名",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="adminName",value = "登录名",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="adminNumber",value = "编号",required=true,paramType="path",dataType="Long"),
            @ApiImplicitParam(name="adminSex",value = "性别",required=true,paramType="path",dataType="Integer"),
            @ApiImplicitParam(name="adminEmail",value = "邮箱",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="adminPhone",value = "电话",required=true,paramType="path",dataType="Long"),
            @ApiImplicitParam(name="adminState",value = "状态",required=true,paramType="path",dataType="Integer"),
            @ApiImplicitParam(name="adminIdAgentId",value = "所属公司",required=true,paramType="path",dataType="Integer")
    })
    QueryResponseResult addEmployees(EmployeeRequest employeeRequest);

    @ApiOperation("员工编辑")
    @ApiImplicitParams({
            @ApiImplicitParam(name="adminUsername",value = "真实姓名",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="adminName",value = "登录名",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="adminUuid",value = "编号",required=true,paramType="path",dataType="Long"),
            @ApiImplicitParam(name="adminSex",value = "性别",required=true,paramType="path",dataType="Integer"),
            @ApiImplicitParam(name="adminEmail",value = "邮箱",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="adminPhone",value = "电话",required=true,paramType="path",dataType="Long"),
            @ApiImplicitParam(name="adminState",value = "状态",required=true,paramType="path",dataType="Integer"),
            @ApiImplicitParam(name="adminPassword",value = "密码",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="adminIdAgentId",value = "所属公司",required=true,paramType="path",dataType="Integer")
    })
    QueryResponseResult upAdmin(EmployeeRequest employeeRequest);

    @ApiOperation("员工信息回显")
    @ApiImplicitParams({
            @ApiImplicitParam(name="id",value = "员工id",required=true,paramType="path",dataType="String")
    })
    QueryResponseResult findById(String id );

    @ApiOperation("业绩查询")
    @ApiImplicitParams({
            @ApiImplicitParam(name="page",value = "当前页",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="size",value = "每页显示的条数",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="employeeName",value = "业务员姓名",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="employeeId",value = "业务员工号",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="CommercialId",value = "商户编号",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="CommercialName",value = "商户名称",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="startTime",value = "开始时间",required=true,paramType="path",dataType="Date"),
            @ApiImplicitParam(name="endTime",value = "结束时间",required=true,paramType="path",dataType="Date")
    })
    QueryResponseResult performanceEnquiry(SalesmanQueryRequest salesmanQueryRequest);

    @ApiOperation("业务员流水")
    @ApiImplicitParams({
            @ApiImplicitParam(name="page",value = "当前页",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="size",value = "每页显示的条数",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="employeeName",value = "业务员姓名",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="employeeId",value = "业务员工号",required=true,paramType="path",dataType="String"),
            @ApiImplicitParam(name="startTime",value = "开始时间",required=true,paramType="path",dataType="Date")
    })
    QueryResponseResult salemanWater(SalesmanQueryRequest salesmanQueryRequest);

    @ApiOperation("查询当前登录用户下的员工")
    QueryResponseResult findAllByAgentId();



}
